import axios from 'axios'
// axios 设置请求拦截器和响应拦截器

const ixios = axios.create({
    baseURL: '/api', //任何请求开头都是/api
    timeout: 5000, //

})

ixios.interceptors.request.use(config => {
    // 在请求拦截器中,我们一般可以处理参数,请求头信息,一般用来设置请求头token
    const Authorization = localStorage.getItem('token');
    if (Authorization) {
        config.headers['Authorization'] = Authorization
        // config.headers['Authorization'] = Authorization
        // config.headers.common['Authorization'] = Authorization
    }
    return config
})

ixios.interceptors.response.use(res => {
    // 一般用于处理响应数据,使用场景可以用来存储token,有时后台的接口设计登录成功后返回的token是有时
    //假如 2小时token有效, 后续接口中,只要调用任意一个接口,都会重新返回token,这样事件就顺延2小时,,所有每次token 都需要存
    if (res.data.context && res.data.context.jwt) {
        localStorage.setItem('token', res.data.context.jwt)
    }

    // 用来存储用户菜单(根据用户角色返回的首页左侧菜单)
    if (res.data.context && res.data.context.acl) {
        localStorage.setItem('acl', JSON.stringify(res.data.context.acl))
    }
    return res
})

export default ixios